home *** CD-ROM | disk | FTP | other *** search
/ Assembly Language Step by Step / Assembly Language Step by Step.mdf / ForDOS / ASM / UpCase.mac < prev    next >
Text File  |  1999-09-18  |  699b  |  13 lines

  1. %macro    UpCase 2                 ; Target,Length 
  2.           mov CX,%2                ; CX is acting as length counter for loop
  3.           mov BX,%1                ; String will be at DS:BX
  4. %%Tester: cmp BYTE [BX],'a'        ; Is string character below 'a'?
  5.           jb %%Bump                ; If so, leave character alone
  6.           cmp BYTE [BX],'z'        ; Is string character above 'z'?
  7.           ja %%Bump                ; If so, leave character alone
  8.           and BYTE [BX],11011111b  ; Char is lc alpha, so force bit 5 to 0
  9. %%Bump:   inc BX                   ; Bump BX to point to next char in string
  10.           loop %%Tester            ; And go back and do it again!
  11. %endmacro
  12.  
  13.